#include "HiranipraCommon.h"
#include "SystemInformation.h"

#ifndef _WINDOWS_WINDOWS_APPLICATION_H_
#define _WINDOWS_WINDOWS_APPLICATION_H_

namespace Hiranipra {
	namespace Platform {

		class WindowsApplication : implements IApplication
		{
		public:
			WindowsApplication();
			virtual ~WindowsApplication();

			virtual ISystemInformation* QuerySystemInformation() const;

			virtual IWindow* NewWindow( const WindowParameters& params );

			virtual uint64 GetTimeFrequency() const;
			virtual uint64 GetTimeElapsed();
			virtual bool Update();

		private:
			SystemInformation*		_systemInfo;
			uint64					_timeFrequency;
			uint64					_timeOverhead;
			uint64					_timeLast;
		};

	}
}

#endif // _WINDOWS_WINDOWS_APPLICATION_H_
